home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / gcc263-src.lha / gcc-2.6.3 / config / m68k / mot3300g.h < prev    next >
C/C++ Source or Header  |  1994-11-11  |  4KB  |  109 lines

  1. /* Definitions of target machine Motorola Delta 68k using GAS
  2.    for GNU Compiler.
  3.    Copyright (C) 1994 Free Software Foundation, Inc.
  4.  
  5. This file is part of GNU CC.
  6.  
  7. GNU CC is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation; either version 2, or (at your option)
  10. any later version.
  11.  
  12. GNU CC is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with GNU CC; see the file COPYING.  If not, write to
  19. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  20.  
  21.  
  22. /* Just in case someone asks */
  23. #define USE_GAS
  24.  
  25. #include "m68k/m68k.h"
  26.  
  27. /* See m68k.h.  7 means 68020 with 68881,
  28.    7 & 01400 means optimize for 68040 but allow execution on 68020. */
  29. #undef TARGET_DEFAULT
  30. #define    TARGET_DEFAULT (7 & 01400)
  31.  
  32. /* NYI: FP= is equivalent to -msoft-float
  33.    We use /lib/libp/lib* when profiling.
  34.    
  35.    NYI: if FP=M68881U library is -lc881u
  36.    NYI: if FP= library is -lc.
  37.    Default for us: FP=M68881 library is -lc881  */
  38. #undef LIB_SPEC
  39. #define LIB_SPEC "%{!shlib:%{p:-L/usr/lib/libp} %{pg:-L/usr/lib/libp} -lc881}"
  40.  
  41. #undef CPP_SPEC
  42. #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__}"
  43.  
  44. /* Shared libraries need to use crt0s.o  */
  45. #undef STARTFILE_SPEC
  46. #define STARTFILE_SPEC \
  47.   "%{!shlib:%{pg:mcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}\
  48.    %{shlib:crt0s.o%s shlib.ifile%s} "
  49.  
  50.   /* -m68000 requires special flags to the assembler.  */
  51. #define ASM_SPEC \
  52.  "%{m68000:-mc68000}%{mc68000:-mc68000}%{!mc68000:%{!m68000:-mc68020}}"
  53.  
  54. /* Generate calls to memcpy, memcmp and memset.  */
  55. #define TARGET_MEM_FUNCTIONS
  56.  
  57. /* size_t is unsigned int.  */
  58. #define SIZE_TYPE "unsigned int"
  59.  
  60. /* Every structure or union's size must be a multiple of 2 bytes.  */
  61. #define STRUCTURE_SIZE_BOUNDARY 16
  62.  
  63. /* man cpp on the Delta says pcc predefines "m68k", "unix", and "sysV68",
  64.    and experimentation validates this.   -jla */
  65. #define CPP_PREDEFINES "-Dm68k -Dunix -DsysV68"
  66.  
  67. /* cpp has to support a #sccs directive for the /usr/include files */
  68. #define SCCS_DIRECTIVE
  69.  
  70. /* Make sure to use MIT syntax, not Motorola */
  71. #undef MOTOROLA
  72.  
  73. /* Use SDB style because gdb on the delta doesn't understand stabs. */
  74. #define SDB_DEBUGGING_INFO
  75.  
  76. /* Use a register prefix to avoid clashes with external symbols (classic
  77.    example: `extern char PC;' in termcap).  */
  78. #undef REGISTER_PREFIX
  79. #define REGISTER_PREFIX "%"
  80.  
  81. /* In the machine description we can't use %R, because it will not be seen
  82.    by ASM_FPRINTF.  (Isn't that a design bug?).  */
  83. #undef REGISTER_PREFIX_MD
  84. #define REGISTER_PREFIX_MD "%%"
  85.  
  86. /* The file command should always begin the output.  */
  87. #undef ASM_FILE_START
  88. #define ASM_FILE_START(FILE) \
  89.     { \
  90.        fprintf (FILE, "%s", ASM_APP_OFF); \
  91.        output_file_directive ((FILE), main_input_filename); \
  92.     }
  93.  
  94. /* Undefining these will allow `output_file_directive' (in toplev.c)
  95.    to default to the right thing. */
  96. #undef ASM_OUTPUT_SOURCE_FILENAME
  97. #undef ASM_OUTPUT_MAIN_SOURCE_FILENAME
  98.  
  99. #undef REGISTER_NAMES
  100. #define REGISTER_NAMES \
  101. {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \
  102.  "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%sp", \
  103.  "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7" }
  104.  
  105. /* Define how to jump to variable address from dispatch table of
  106.    relative addresses, for m68k.md insn.  Note the use of 2 '%'
  107.    chars to output one. */
  108. #define ASM_RETURN_CASE_JUMP return "jmp %%pc@(2,%0:w)"
  109.